829edec21f805cdc8fea2993561ac4e77994f647,protostuff-parser/src/main/java/io/protostuff/parser/ProtoParser.java,ProtoParser,service_block,#Proto#Message#,5514

Before Change


                    return retval;
                if (state.backtracking == 0)
                {
                    SERVICE137_tree = (Object) adaptor.create(SERVICE137);
                    adaptor.addChild(root_0, SERVICE137_tree);
                }
                ID138 = (Token) match(input, ID, FOLLOW_ID_in_service_block2272);
                if (state.failed)
                    return retval;
                if (state.backtracking == 0)
                {
                    ID138_tree = (Object) adaptor.create(ID138);
                    adaptor.addChild(root_0, ID138_tree);
                }
                if (state.backtracking == 0)
                {

                    service = new Service((ID138 != null ? ID138.getText() : null), message, proto);
                    proto.addAnnotationsTo(service);

                }
                LEFTCURLY139 = (Token) match(input, LEFTCURLY, FOLLOW_LEFTCURLY_in_service_block2276);
                if (state.failed)
                    return retval;
                if (state.backtracking == 0)
                {
                    LEFTCURLY139_tree = (Object) adaptor.create(LEFTCURLY139);
                    adaptor.addChild(root_0, LEFTCURLY139_tree);
                }
                // io/protostuff/parser/ProtoParser.g:566:9: ( service_body[proto, service] )+
                int cnt27 = 0;
                loop27: do
                {
                    int alt27 = 2;
                    switch (input.LA(1))
                    {
                        case AT:
                        case OPTION:
                        case RPC:
                        {
                            alt27 = 1;
                        }
                            break;

                    }

                    switch (alt27)
                    {
                        case 1:
                        // io/protostuff/parser/ProtoParser.g:566:10: service_body[proto, service]
                        {
                            pushFollow(FOLLOW_service_body_in_service_block2287);
                            service_body140 = service_body(proto, service);

                            state._fsp--;
                            if (state.failed)
                                return retval;
                            if (state.backtracking == 0)
                                adaptor.addChild(root_0, service_body140.getTree());

                        }
                            break;

                        default:
                            if (cnt27 >= 1)
                                break loop27;
                            if (state.backtracking > 0)
                            {
                                state.failed = true;
                                return retval;
                            }
                            EarlyExitException eee =
                                    new EarlyExitException(27, input);
                            throw eee;
                    }
                    cnt27++;
                } while (true);

                RIGHTCURLY141 = (Token) match(input, RIGHTCURLY, FOLLOW_RIGHTCURLY_in_service_block2292);
                if (state.failed)
                    return retval;
                if (state.backtracking == 0)
                {
                    RIGHTCURLY141_tree = (Object) adaptor.create(RIGHTCURLY141);
                    adaptor.addChild(root_0, RIGHTCURLY141_tree);
                }
                // io/protostuff/parser/ProtoParser.g:566:52: ( ( SEMICOLON )? )
                // io/protostuff/parser/ProtoParser.g:566:53: ( SEMICOLON )?

After Change



            SERVICE141=(Token)match(input,SERVICE,FOLLOW_SERVICE_in_service_block2326); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            SERVICE141_tree = (Object)adaptor.create(SERVICE141);
            adaptor.addChild(root_0, SERVICE141_tree);
            }
            ID142=(Token)match(input,ID,FOLLOW_ID_in_service_block2328); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            ID142_tree = (Object)adaptor.create(ID142);
            adaptor.addChild(root_0, ID142_tree);
            }
            if ( state.backtracking==0 ) {
               
                          service = new Service((ID142!=null?ID142.getText():null), message, proto); 
                          proto.addAnnotationsTo(service);
                      
            }
            LEFTCURLY143=(Token)match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_service_block2332); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            LEFTCURLY143_tree = (Object)adaptor.create(LEFTCURLY143);
            adaptor.addChild(root_0, LEFTCURLY143_tree);
            }
            // io/protostuff/parser/ProtoParser.g:589:9: ( service_body[proto, service] )+
            int cnt27=0;
            loop27:
            do {
                int alt27=2;
                switch ( input.LA(1) ) {
                case AT:
                case OPTION:
                case RPC:
                case DOC:
                    {
                    alt27=1;
                    }
                    break;

                }

                switch (alt27) {
            	case 1 :
            	    // io/protostuff/parser/ProtoParser.g:589:10: service_body[proto, service]
            	    {
            	    pushFollow(FOLLOW_service_body_in_service_block2343);
            	    service_body144=service_body(proto, service);

            	    state._fsp--;
            	    if (state.failed) return retval;
            	    if ( state.backtracking==0 ) adaptor.addChild(root_0, service_body144.getTree());

            	    }
            	    break;

            	default :
            	    if ( cnt27 >= 1 ) break loop27;
            	    if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(27, input);
                        throw eee;
                }
                cnt27++;
            } while (true);

            RIGHTCURLY145=(Token)match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_service_block2348); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
            RIGHTCURLY145_tree = (Object)adaptor.create(RIGHTCURLY145);
            adaptor.addChild(root_0, RIGHTCURLY145_tree);
            }
            // io/protostuff/parser/ProtoParser.g:589:52: ( ( SEMICOLON )? )